package com.appkubes.base.core.mbp;

import com.appkubes.base.core.entity.vo.PageVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface AbstractBaseService<D, T>
        extends IService<T> {

    D getDao();

    T getOneByEntity(T entity);

    List<T> selectListByEntity(T entity);

    IPage<T> selectPageByEntity(IPage<T> page);

    IPage<T> selectPageByEntity(PageVO pageVO);

    IPage<T> selectPageByEntity(T entity, IPage<T> page);

    IPage<T> selectPageByEntity(T entity, PageVO pageVO);

    IPage<T> selectPageByEntity(T entity, Integer pageNo, Integer pageSize);

    Integer selectCount(T entity);

    Boolean removeByEntity(T entity);


}
